package zifuchuan;

public class _05字符串压缩 {
    /**
     利用字符重复出现的次数，编写一个方法，实现基本的字符串压缩功能。
     比如，字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。
     若压缩后的字符串没有变短，则返回原先的字符串。
     给定一个string iniString为待压缩的串(长度小于等于10000)，
     保证串内字符均由大小写英文字母组成，返回一个string，为所求的压缩后或未变化的串。
     测试样例
     "aabcccccaaa"
     返回："a2b1c5a3"
     */
    public static void main(String[] args) {
        String initString = "aabcccccaaa";
        String zip = zipString(initString);
        System.out.println(zip);
    }

    public static String zipString(String initString){
        StringBuffer stringBuffer = new StringBuffer();
        char last = initString.charAt(initString.length() -1);
        int count = 1;
        for (int i = 0; i < initString.length(); i++) {
            if (i == initString.length() -1){
                break;
            }else if (initString.charAt(i+1) == initString.charAt(i)){
                count++;
            }else {
                stringBuffer.append(initString.charAt(i)).append(count);
                count = 1;
            }
        }
        stringBuffer.append(last).append(count);
        if (stringBuffer.length()>=initString.length()){
            return initString;
        }
        return stringBuffer.toString();
    }
}
